iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

這邊要提到MLOps,是因為我們接下來要為ROS系統設計的虛實整合環境,需要一個自動化的部署流程,方便我們去做AI model的training以及訓練後資料的收集。這個在PAIA平台上已有實現,可參考此處
MLOps
(文章來自:https://cd.foundation/blog/2020/05/29/mlops-an-introduction/)

我們都知道Machine Learning(ML)的流程大致如下:
ML process
(文章來自:https://www.twblogs.net/a/5c016050bd9eee7aed33b95d)

其中後段的modeling到development需要強大運算量的電腦,才能完成。因此這個部份我們必須設計一個自動的operation流程,將這樣的運算量交給雲端服務的電腦(可能是GPU)去協助運算。

主要架構如下:
https://ithelp.ithome.com.tw/upload/images/20220912/20005722tMe58HuwE8.png

而這流程需要下列幾項工具的協助:

Kubernetes(K8S):
Kubernetes是一個用於自動部署、擴充和管理「容器化應用程式(如Docker)」的開源系統。已經是業界DevOps的標準工具,網路上有很多介紹,這裡就不多介紹了。

方便透過Kubernetes指令管理眾多containers與分配其使用資源(VM, CPU, Memory)。
https://ithelp.ithome.com.tw/upload/images/20220912/200057224L82neKXLS.png

Jenkins:
老牌CI/CD工具,選用它也是因為它歷史悠久,整合性資源較多。雖然介面不盡理想,但透過其他整合工具可以加強它的易控性。並有提供透過SSH+VPN設定串連多台主機(node),協助一起執行CI/CD。
https://ithelp.ithome.com.tw/upload/images/20220912/20005722dMlOfJIbRQ.png

ArgoCD:
藉由其與Kubernetes極高的整合與優秀的監控介面,可以讓Jenkins更方便在持續部署(CD)上。
https://ithelp.ithome.com.tw/upload/images/20220912/20005722uTsNpc9DmM.png

架設好ArgoCD與設定好憑證後,只要在Jenkins中用以下指令來控制Kubernetes的更版與部署。

# Deploy to ArgoCD
ARGOCD_SERVER=$ARGOCD_SERVER argocd --grpc-web app sync $APP_NAME --force

ArgoCD彌補了Jenkins在Kubernetes上CD的不足,而CI的部份如何補強,我們將在接下來的文章中解釋。


上一篇
[前置]FRC(FIRST Robotics Competition)與機器人們的產地
下一篇
[前置]地端與雲端的溝通-MQTT架設
系列文
IoT Cloud Computing on robotic vehicle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言